type expr =
    Var of string
  | Int of int
  | Bool of bool
  | Fun of string * expr
  | Bfun of string
  | Bfun2 of string
  | Cond of expr * expr * expr
  | Nil
  | Cons of expr * expr
  | App of expr * expr
type root =
    Def of string * expr
  | Defrec of string * expr
  | Exp of expr
  | Print of expr
